/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpr.inf.escel.testing.model;

/**
 *
 * @author gustavo
 */
public class CutPP extends Cut {

    private String criterio;

    public void addFuncao(String funcao) {
        getFuncoes().add(funcao);
    }

    /**
     * Formata as funções da cut para a poketool
     * String tipo {
     *                  aval = comando de avaliação da poke
     *                  exec = comando de execução da poke
     *              }
     * @return funções formatadas p/ poketool
     */
    public String getFuncoes(String tipo) {
        StringBuffer out = new StringBuffer(" ");
        for (String string : getFuncoes()) {
            if (tipo.equals("aval")) {
                out.append("-d").append(string).append(" ");
                return out.toString();
            } else {
                out.append("-f").append(string).append(" ");
            }
        }

        return out.toString();
    }

    public String gerarExecutavel(String tipo) {
        String executavel;
        if (tipo.toLowerCase().contains("poke")) {
            executavel = "gcc -o exec-poke testeprog.c -lm";
        } else {
            executavel = "gcc -o exec-proteum " + getPrograma() + " -lm";
        }
        return executavel;
    }

    public String getExecutavel() {
        return "exec-proteum";
    }

    public String basename() {
        return getPrograma().split("\\.c")[0];
    }

    @Override
    public String getCriterio() {
        return criterio;
    }

    @Override
    public void setCriterio(String criterio) {
        this.criterio = criterio;
    }
}
